package com.tlgen.common.config;

import com.tlgen.common.utils.SecurityUtils;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.stereotype.Service;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author: tlgen
 * @Discription:
 */
@Service(value = "tlgen")
public class TlgenPermissionConfig {

    public boolean check(String ...permissions) {
        //获取当前用户的所有权限
        List<String> elPermissions = SecurityUtils.getUserDetails().getAuthorities()
                .stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList());
        //判断当前用户的所有权限是否包含接口上定义的权限
        return elPermissions.contains("admin") || Arrays.stream(permissions).anyMatch(elPermissions::contains);
    }
}
